package com.tyk.bookstore.back.product.service;


import com.tyk.bookstore.back.common.core.model.type.BinVo;
import com.tyk.bookstore.back.common.core.model.type.SuggestionQuery;
import com.tyk.bookstore.back.product.manager.excel.model.AuthorExcelVo;
import com.tyk.bookstore.back.product.model.query.AuthorAddQuery;
import com.tyk.bookstore.back.product.model.query.AuthorPageQuery;
import com.tyk.bookstore.back.product.model.query.AuthorUpdateQuery;
import com.tyk.bookstore.back.product.model.vo.AuthorPageVo;
import com.tyk.bookstore.back.product.model.vo.AuthorSimVo;
import com.tyk.bookstore.back.product.model.vo.AuthorVo;

import java.util.List;

/**
 * @author tyk
 * @description 作者管理
 */
public interface AuthorService {

    /**
     * 获取作者详情
     */
    AuthorVo getById(Long id);

    /**
     * 分页查询作者
     */
    AuthorPageVo getPage(AuthorPageQuery query);


    /**
     * 添加作者
     */
    void add(AuthorAddQuery query);

    /**
     * 更新作者
     */
    void updateById(AuthorUpdateQuery query);

    /**
     * 删除作者
     */
    void deleteById(Long id);

    /**
     * 删除作者
     */
    void deleteBatchById(List<Long> idList);

    /**
     * 作者搜索建议列表
     */
    List<BinVo> getSuggestionList(SuggestionQuery query);

    /**
     * 作者列表
     */
    List<AuthorSimVo> getList();

    /**
     * 获取Excel导出数据
     *
     * @param query 同分页查询参数
     * @return Excel导出数据
     */
    List<AuthorExcelVo> getAuthorExcelVoList(AuthorPageQuery query);

    /**
     * 保存作者Excel
     *
     * @param authorList 作者列表
     */
    void saveAuthorExcelVoList(List<AuthorExcelVo> authorList);
}
